/**
*	oa审批事项列表页面
*
*/

define(['init','dataTable','dataTables-jqueryui','jqueryValidate','bsButton','bsButtonEvent','bsMsgServ','domReady!'],
    	function(init,dataTable,ui,validate,bsButton,bsButtonEvent,bsMsgServ,doc) {
		
    	var rootid = 'issue-main'
    	
    	var dg_table 
    	
    	var selected = [];
    	
    	//业务列表-表单容器对象
    	var list_c = ' div.list-detail'
    		
    	//当前业务模块代码
    	var current_bizcode 
    	
    	//当前选中行
    	var curent_selectRow
    	
		var private_method = {
    	
    	/**
    	 * 初始化侧边栏导航
    	 */
    	initNav:function(){
    		var _param = {
    			url:'/'+init.getSite()+'/permission/query/getUserDutiesMenu.action',
    			success:function(data){
    				if(window.console){
    					console.log('menu data: ' + data.length);
    				}
    				var _el = $('#' + rootid + ' #left-nav')
    				if(_el.length==1){
    					var _html = '';
    					$.each(data,function(i,o){
    						
    						_html+='<li>'+
    							   '<a class="left-nav-btn" href="javascript:void(0);" id="'+o.bizcode+'">'+ 
    							   o.name +
    							   '</a>'+
    							   '</li>'
    						
    					})
    					
    					if(_html){
    						_el.empty();
    						_el.append(_html);
    						
    						private_method.btn_listenner();
    					}
    				}
    			}
    		}
    		$.ajax(_param)
    	},
    	/**
    	 * 初始化列表
    	 * @param _options.module	模块代码
    	 * @param _options.ajax		server端数据访问方法
    	 * @param _options.paging	分页标志
    	 * @param _options.columns	缺省列
    	 */
    	initList:function(_options){
    		
    		 var _param ={
    		 	height:init.getGridHeight(),
    		 	rownumbers:true,
				animate: true,									
				striped:true,
				border:true,
				//singleSelect:false,
				idField: 'id',
				treeField: 'name',					
				fitColumns: true,
				checkOnSelect:true,					
				selectOnCheck:true,
				pagination: true,
				url:'/'+init.getSite()+'/'+_options.module+'/query/getOperateTaskListDomain.action',
				columns:[[
					{field:'ck',checkbox:true},
					{field:'bizno',title:'业务编码',width:100,halign:'center'},        
					{field:'name',title:'事项名称',width:50,halign:'center'},        
					{field:'apply_deptname',title:'申请科室',width:50,halign:'center'} ,
					{field:'apply_name',title:'申请人员',width:50,halign:'center'} ,
					{field:'apply_date',title:'申请时间',width:50,halign:'center'} 
//					{field:'apply_name',title:'操作',width:50,align:'center',
//						formatter:function(value,row,index){
//							return  '<span><font color=blue>下载</font></span>';
//						}
//					}
				]]
    		 }
    		 
    		 var dg = $('#' + rootid + ' .dg-list')
    		 if(dg.length>0){
    		 	dg.datagrid(_param)
    		 }
    		
    	}
    	,
    	/**
    	 * 按钮事件定义
    	 */
    	btn_listenner:function(){
    		var _btn = $('#'+rootid +' a.left-nav-btn')
    		if(_btn.length>0){
    			_btn.unbind('click');
    			_btn.bind('click',private_method.navClick)
    		}
    	}
    	
    	,
    	/**
    	 * 业务类型点击事件
    	 */
    	navClick:function(e){
    		
    		//选中状态 class 调整
    		$('#' + rootid + ' #left-nav li').removeClass('active');
    		$(e.currentTarget).closest('li').addClass('active');
    		
    		//获取选中对象类型
    		current_bizcode = init.getNavType(e);
    		if(window.console){
				console.log('module: ' + current_bizcode);
			}
    		
    		//获取容器对象
			var _c =$('#' + rootid +list_c)
    		
			//刷新容器对象，变更数据
			if(_c){
				//清除原有内容
				_c.empty();
				
				var _html = '<table class="dg-list" cellspacing="0" width="100%"></table>';
				_c.append(_html);
			}			
			
			private_method.redrawBtn({
				bizcode:current_bizcode,
				btnType:'list',
				bizType:'flow',
				container:rootid + ' .btn-container'
			})
    		private_method.initList({module:current_bizcode});
    	}
    	,
    	
    	clearDetail:function(){
    		var _c =$('#' + rootid +list_c)
    			
    			if(_c){
    				//清除原有内容
    				_c.empty();
    			}
    	}
    	
    	,
    	
    	/**
    	 * 更新按钮
    	 * @param _options.bizcode	业务编码
    	 * @param _options.btnType		按钮类型(list,edit,view)
    	 * @param _options.bizType	业务类型(0:normal,1:flow,2:audit)
    	 * @param _options.container 按钮容器对象
    	 */
    	redrawBtn:function(_options){
    		
    		
    		var _btn ;
    		if(_options && _options.btnType){
    			
	    		_btn = bsButton.getBtn(_options);
	    				
    		}
    		
    		if(_btn){
    			
    			$('#'+_options.container + ' button').unbind('click');
    			$('#'+_options.container).empty();
    			$('#'+_options.container).append(_btn);
    			
    			//绑定按钮事件
    			$('#'+_options.container + ' button').bind('click',private_method.btnClick);
    		}
    		
    	}
    	,
    	btnClick:function(e){
    		var _btnConfig ={
    			listAdd:private_method.add
    		}
    		init.applyBtnEvt({btnEvt:e,btnConfig:_btnConfig})
//    		bsMsgServ.msgSlide();
    	}
    	,
    	
    	
    	/**
    	 * 验证表单
    	 * @param _options.code		业务编码
    	 */
    	validateForm:function(_options){
    		
    		var ret = false
    		//判断传入编码是否为空
    		if(_options && _options.code){
    			
    			//根据业务当前流程节点状态获取字段配置
    			var rules = init.getFieldRule({bizcode:_options.code,activitiId:_options.activitiId})
    			
    			ret = $('#' + rootid + ' form.main-form').validate(rules);    			
    		}
    		return ret;
    	}
    	,
    	
    	/**
    	 * 生成表单验证规则
    	 * @param _options.data		规则字段配置
    	 */
    	generateFormRule:function(_options){
    		
    		var _rule = {
    			errorElement : 'span',  
	            errorClass : 'help-block',  
	            focusInvalid : true
    		}
    		
    		if(_options.data){
    			
    		}
    		
    	}
    	,
    	/**
    	 * 初始化表单按钮及页面元素
    	 * @param _options.code		业务编码
    	 */
    	initForm:function(_options){
    		//判断传入编码是否为空
    		if(_options && _options.code){
    			
    			//根据模块代码及流程节点定义，获取节点按钮配置
    			
    		}
    	}
    	
		
	};
	
	var btnEvent = {
		listAdd:function(e){
    		
    		var _url = '/'+current_bizcode+'/query/getPage.action?code=bsEditDlg'
    		bsButtonEvent.add({
    			url:_url,
    			container:'issue-main div.list-detail',
    			formInit:null,
    			evt:e
    		})
    	}
    		
	}
	
	var public_method = {
		initPage:function(){
			private_method.initNav();
		}
	}
	
	return public_method;
		
    
})
